package ik.xcj.hostpital.manage.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ik.xcj.hostpital.manage.pojo.dto.DepartmentAddNewDTO;
import ik.xcj.hostpital.manage.pojo.dto.DepartmentUpdateDTO;
import ik.xcj.hostpital.manage.pojo.vo.DepartmentListItemVO;
import ik.xcj.hostpital.manage.pojo.vo.DepartmentStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理科室数据的业务接口
 *
 * @author ik.xcj
 * @version 0.0.1
 */
@Transactional
public interface IDepartmentService {

    /**
     * 添加科室
     *
     * @param departmentAddNewDTO 新的科室数据
     */
    void addNew(DepartmentAddNewDTO departmentAddNewDTO);

    /**
     * 根据id删除科室
     *
     * @param id 用户id
     */
    void deleteById(Long id);

    /**
     * 修改科室详情
     *
     * @param id             被修改的用户的科室id
     * @param departmentUpdateDTO 封装了新数据的对象
     */
    void updateInfoById(Long id, DepartmentUpdateDTO departmentUpdateDTO);
    /**
     * 根据id获取属性的标准信息
     *
     * @param id 属性id
     * @return 返回匹配的属性的标准信息，如果没有匹配的数据，将返回null
     */
    DepartmentStandardVO getStandardById(Long id);
    /**
     * 查询科室数据列表
     *
     * @return 科室数据列表
     */
    PageInfo<DepartmentListItemVO> list(Integer page,Integer pageSize);
}
